// const Tesseract = require('tesseract.js');
// const image = './public/image/4.jpg';
// // const image = './public/image/2.png';
// exports.imageshow = (req,res) => {
//     console.log(123);
//     // 图片路径

//     // 识别图片中的文字
//     Tesseract.recognize(
//         image,
//         'chi_sim', // 指定识别的语言，这里是英文
//         {
//             logger: m => console.log(m) // 日志函数，用于输出识别进度
//         }
//     ).then(({ data: { text } }) => {
//         res.send({
//             mess:text
//         })
//         // let textS = text.replace(/\s+/g, '\n').split('\n')
//         console.log(text, 1234); // 输出识别的文字
//     }).catch(error => {
//         console.error(error); // 错误处理
//     });
// }


const fs = require('fs')
const request = require('request')
const AK = "d185G17gjwGV3AJZ89theNEr"
const SK = "8EbHG4Xs547vuHwf4gy7L5MkQT8DJRHt"
const axios = require('axios')


/**
 * 使用 AK，SK 生成鉴权签名（Access Token）
 * @return string 鉴权签名信息（Access Token）
 */
function getAccessToken () {

    let options = {
        'method': 'POST',
        'url': 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + AK + '&client_secret=' + SK,
    }
    return new Promise((resolve, reject) => {
        request(options, (error, response) => {
            if (error) { reject(error) }
            else { resolve(JSON.parse(response.body).access_token) }
        })
    })
}

/**
 * 获取文件base64编码
 * @param string  path 文件路径
 * @return string base64编码信息，不带文件头
 */
function getFileContentAsBase64 (path) {
    const fs = require('fs')
    try {
        return fs.readFileSync(path, { encoding: 'base64' })
    } catch (err) {
        throw new Error(err)
    }
}
exports.recognitionImg = async (req, res) => {
    console.log()
    const fil = req.body.url
    const response = await axios({
        url: fil,
        method: 'GET',
        responseType: 'arraybuffer' // 重要：确保以二进制流形式接收数据
    })
    const base64 = Buffer.from(response.data, 'binary').toString('base64')
    const base64Image = `data:${response.headers['content-type']};base64,${base64}`
    var options = {
        'method': 'POST',
        'url': 'https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token=' + await getAccessToken(),
        'headers': {
            'Content-Type': 'application/x-www-form-urlencoded',
            'Accept': 'application/json'
        },
        // image 可以通过 getFileContentAsBase64("C:\fakepath\4.jpg") 方法获取,
        form: {
            'image': base64Image,
            'detect_direction': 'false',
            'paragraph': 'false',
            'probability': 'false',
            'multidirectional_recognize': 'false'
        }
    }

    request(options, function (error, response) {
        if (error) throw new Error(error)
        res.send({
            res: response.body
        })
    })

}
exports.recognitionImgQualit = async (req, res) => {
    const fil = req
    const response = await axios({
        url: fil,
        method: 'GET',
        responseType: 'arraybuffer' // 重要：确保以二进制流形式接收数据
    })
    const base64 = Buffer.from(response.data, 'binary').toString('base64')
    return new Promise(async (resolve, reject) => {
        let base64Image = `data:${response.headers['content-type']};base64,${base64}`
        let options = {
            'method': 'POST',
            'url': 'https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token=' + await getAccessToken(),
            'headers': {
                'Content-Type': 'application/x-www-form-urlencoded',
                'Accept': 'application/json'
            },
            // image 可以通过 getFileContentAsBase64("C:\fakepath\4.jpg") 方法获取,
            form: {
                'image': base64Image,
                'detect_direction': 'false',
                'paragraph': 'false',
                'probability': 'false',
                'multidirectional_recognize': 'false'
            }
        }
        resolve(options)
    }).then(res => {
        return getImgSize(res)
    })

}
function getImgSize (options) {
    return new Promise((resolve, reject) => {
        request(options, function (error, response) {
            if (error) throw new Error(error)
            resolve(response.body)
            // res.send({
            //     res: response.body
            // })

        })
    })
}
// const request = require('request')
// exports.imageshow = (req, res) => {
//     async function main() {
//         var options = {
//             'method': 'POST',
//             'url': 'https://aip.baidubce.com/oauth/2.0/token?client_id=114385423&XGB6plop94b2LgFvt9upzp48voKeMZKf&grant_type=client_credentials',
//             'headers': {
//                 'Content-Type': 'application/json',
//                 'Accept': 'application/json'
//             }
//         };

//         request(options, function (error, response) {
//             if (error) throw new Error(error);
//             console.log(response.body);
//         });
//     }
// }


